// group0 公共 group1 Trans group2\group3 材质   group4 geometry
const locations={
  // group0
  camera:[0,1],
  ambientLight: [0, 2],
  hemisLight: [0, 3],
  punctualLight: [0, 4],
  punctualCount: [0, 5],
  irradianceMap:[0,6],
  prefilterMap:[0,7],
  brdfLUT:[0,8],
  iBLSampler:[0,9],
  environmenIntensity:[0,10],
  ColorAdjust:[0,11],
  TotalLightCamera:[0,12],
  SingleLightCamera:[0,13],
  ShadowMap:[0,14],
  ShadowSampler:[0,15],
  lightCastCount:[0,15],
  gBuffer:[0,16],
  pointLightShadow:[0,17],
  ShadowMapPoint:[0,18],
  ShadowSamplerPoint:[0,19],
  ShadowPointIndex:[0,20],

 // group1
  trans:[1,0],
  transinstance:[1,0],  
  //  
  u_MorphTargetsSampler: [1, 1],
  u_morphWeights: [1, 2],
  u_jointsSampler: [1, 3],
  pickId:[1,4],
  pickIdInstance:[1,4],
  relativeShift:[1,5],
  pointSize:[1,6],
  pointVertexCount: [1,7],
  map_uvOffset: [1, 8],
  map_uvPixel: [1, 9],
  lineWidth: [1, 10],
  WEIGHT_COUNT: [5, 17],
  morphPositionOffset: [5, 18],
  morphNormalOffset: [5, 19],
  morphTangentOffset: [5, 20],
// group2
  material: [2,0],
  map: [2,1],
  mapSampler: [2,2],
  mapUVTransform: [2,3],
 
  emissiveMap: [2,8],
  emissiveMapSampler: [2,9],
  emissiveMapUVTransform: [2,10],
  ambientMap: [2,11],
  ambientMapSampler: [2,12],
  ambientMapUVTransform: [2,13],
  diffuseMap: [2,14],
  diffuseMapSampler: [2,15],
  diffuseMapUVTransform: [2,16],
  specularMap: [2,17],
  specularMapSampler: [2,18],
  specularMapUVTransform: [2,19],
  mapUvOffset: [2,20],
  normalMap:[2,21],
  normalMapSampler:[2,22],
  normalMapUVTransform:[2,23],
  aoMap:[2,24],
  aoMapSampler:[2,25],
  aoMapUVTransform:[2,26],
  alphaMap:[2,27],
  alphaMapSampler:[2,28],
  alphaMapUVTransform:[2,29],

  toneMappingExposure: [2,33],
  displacementMap:[2,34],
  displacementMapSampler:[2,35],
  displacementMapUvTransform:[2,36],
  displacementScale:[2,37],
  displacementBias:[2,38],
  standardMaterialProperties: [2,30],


  // group3

  metRougMap: [3,1],
  metRougMapSampler: [3,2],
  metRougMapUVTransform: [3,3],//mat3
  // Specular Glossiness
  uSG_DiffuseFactor: [3,4],
  uSG_SpecularFactor: [3,5],
  uSG_GlossinessFactor: [3,6],
  uSG_Diffuse: [3,7],
  uSG_DiffuseSampler: [3,8],
  uSG_DiffuseUVTransform: [3,9],//mat3
  uSG_SpecularGlossiness: [3,10],
  uSG_SpecularGlossinessSampler: [3,11],
  uSG_SpecularGlossinessUVTransform: [3,12],//mat3
// Sheen
  u_SheenRoughnessFactor: [3,13],//f32
  u_SheenColorFactor: [3,14],//vec3
  u_SheenColor: [3,15],
  u_SheenColorSampler: [3,16],
  u_SheenColorUVTransform: [3,17],//mat3
  u_SheenRoughness: [3,18],
  u_SheenRoughnessSampler: [3,19],
  u_SheenRoughnessUVTransform: [3,20],//mat3
  u_SheenELUTSampler: [3,21],//mat3
  u_SheenELUT: [3,22],//mat3
  u_CharlieLUTSampler: [3,23],//mat3
  u_CharlieLUT: [3,24],//mat3
  u_CharlieEnvSampler: [3,25],//mat3
  u_CharlieEnv: [3,26],//mat3
  // Clearcoat
  u_ClearcoatFactor: [3,27],//f32
  u_ClearcoatRoughnessFactor: [3,28],//f32
  u_Clearcoat: [3,29],
  u_ClearcoatSampler: [3,30],
  u_ClearcoatUVTransform: [3,31],//mat3
  u_ClearcoatRoughness: [3,32],
  u_ClearcoatRoughnessSampler: [3,33],
  u_ClearcoatRoughnessUVTransform: [3,34],//mat3
  u_ClearcoatNormal: [3,35],
  u_ClearcoatNormalSampler: [3,36],
  u_ClearcoatNormalUVTransform: [3,37],//mat3
  u_ClearcoatNormalScale: [3,38],
  // SPECULAR
  u_KHR_materials_specular_specularColorFactor: [3,39],//vec3
  u_KHR_materials_specular_specularFactor: [3,40],//f32
  u_Specular: [3,41],//texture_2d
  u_SpecularSampler: [3,42],//sampler
  u_SpecularUVTransform: [3,43],//mat3
  u_SpecularColor: [3,44],//texture_2d
  u_SpecularColorSampler: [3,45],
  u_SpecularColorUVTransform: [3,46],//mat3
  
  // Transmission
 u_TransmissionFactor: [3,47],//f32
 u_Transmission: [3,48],//texture_2d
 u_TransmissionSampler: [3,49],//sampler
 u_TransmissionUVTransform: [3,50],//mat3
 u_TransmissionFramebuffer: [3,51],//texture_2d
 u_TransmissionFramebufferSampler: [3,52],//sampler
 u_TransmissionFramebufferSize: [3,53],//vec2
 // Volume
 u_ThicknessFactor: [3,54],//float
 u_AttenuationColor: [3,55],//vec3
 u_AttenuationDistance: [3,56],//float
 u_Thickness: [3,57],//texture_2d
 u_ThicknessSampler: [3,58],//sampler
 u_ThicknessUVTransform: [3,59],//mat3
 // Emissive Strength
 u_EmissiveStrength: [3,60],//f32
 // IOR
 u_Ior: [3,61],//f32
 // Anisotropy
 u_Anisotropy: [3,62],//vec3
 u_AnisotropyMap: [3,63],//texture_2d
 u_AnisotropySampler: [3,64],//sampler
 u_AnisotropyUVTransform: [3,65],//mat3
 // Alpha mode
 alphaCutoff: [3,66],




  // geometry 4
  position:[4, 0],
  normal: [4, 1],
  texCood0: [4, 2],
  texCood1: [4, 3],
  tangent: [4, 4],
  indices: [4, 5],
  color: [4, 6],
  joints0: [4, 7],
  weights0: [4, 8],
  joints1: [4, 9],
  weight1: [4, 10],
  pointNormal: [4, 11],
  uvWidthFactor: [4,12],
  offset: [4, 13],
  size: [4, 14],
  rotation: [4, 15],
  opacity: [4, 2],
  visible: [4, 3],

  


  //config 5
  materialType: [5,0],
  primitive: [5,1],
  blendMode: [5,2],
  depthStencil: [5,3],
  transparent: [5,4],
  toneMapping: [5,5],
  alphaMapUVIndex: [5,6],
  aoMapUVIndex: [5,7],
  mapUVIndex: [5,8],
  emissiveMapUVIndex: [5,9],
  ambientMapUVIndex: [5,10],
  diffuseMapUVIndex: [5,11],
  specularMapUVIndex: [5,12],
  sdf:[5,13],
  geometryType: [5,14],
  instanceCount:[5,15],
  pointSizeVarying: [5,17],
  cameraSide:[5,14],
  colorF32: [5,21],
  colorVec3: [5,22],
  receiveShadow: [5,23],
}  
export {locations}